
#include "Perus.h"






void TEKSTUURI::Alusta( char *TiedostoNimi, char *Nimi   )
{
    LataaTGA( TiedostoNimi, *this );
    NimiID = Nimi;
    
    glGenTextures( 1, &ID );
    glBindTexture( GL_TEXTURE_2D, ID );
    gluBuild2DMipmaps( GL_TEXTURE_2D, Komponentit, Leveys, Korkeus, Type, GL_UNSIGNED_BYTE, Data );
    glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER, GL_LINEAR );
    glTexParameteri( GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_LINEAR );

    delete [] Data;
    Data = NULL;
}









void GRAFIIKKA::AlustaTekstuuriPuskuri( )
{
    char **TiedostoNimiLista;
    char **NimiIDLista;

    char Nimi[512];

    char *LatausLista;
    if(LataaLista( "Tiedostot\\LatausLista.txt", LatausLista ))
    {
        char *Ladattavat = strstr( LatausLista, "TEKSTUURIT" );

        if(Ladattavat != NULL )
        {
            int LKM = 0;
            for(int i=0; Ladattavat[i] != '#'; i++){ if(Ladattavat[i] == '>'){ LKM++; } }
            TekstuurienLKM = LKM;

            TiedostoNimiLista = new char *[TekstuurienLKM];
            NimiIDLista = new char *[TekstuurienLKM];

            LKM = 0;
            for(int i=0; LKM < TekstuurienLKM; i++)
            {
                if(Ladattavat[i] == '>')
                {
                    i++;    //hypätään '>' yli
                    int NimenPituus = 0;
                    for(int BegPos = i; Ladattavat[i-1] != '='; i++ ){ Nimi[i - BegPos] = Ladattavat[i]; NimenPituus++;}
                    TiedostoNimiLista[LKM] = new char [NimenPituus];
                    for(int n=0; n<NimenPituus; n++){ TiedostoNimiLista[LKM][n] = Nimi[n]; }
                    PyyhiLoppu(TiedostoNimiLista[LKM], '='); //poistaa pienen bugin...

                    //i++;    //hypätään '>' yli
                    NimenPituus = 0;
                    for(int BegPos = i; Ladattavat[i-1] != ';'; i++ ){ Nimi[i - BegPos] = Ladattavat[i]; NimenPituus++;}
                    NimiIDLista[LKM] = new char [NimenPituus];
                    for(int n=0; n<NimenPituus; n++){ NimiIDLista[LKM][n] = Nimi[n]; }
                    PyyhiLoppu(NimiIDLista[LKM], ';'); //poistaa pienen bugin...

                    LKM++;
                }
            }
        }
    }

    TekstuuriPuskuri = new TEKSTUURI [TekstuurienLKM];
    for(int i=0; i<TekstuurienLKM; i++)
    {
        char TiedostoNimi[512] = {"Tiedostot\\Tekstuurit\\"};
        strcat( TiedostoNimi, TiedostoNimiLista[i] );
        TekstuuriPuskuri[i].Alusta( TiedostoNimi , NimiIDLista[i] );
    }
    delete [] TiedostoNimiLista; TiedostoNimiLista = NULL;
    delete [] NimiIDLista; TiedostoNimiLista = NULL;
}
